約 4,796,642 件
https://w.atwiki.jp/cocoareferencejp/pages/88.html
Tags Data Management Data Types Collections リファレンス 未完 Cocoa トップ リファレンス データ管理:データ型とコレクション NSValue クラスリファレンス NSValue クラスリファレンス 翻訳元 このページの最終更新:2010-02-25 ADCの最終更新:2007-10-31 継承するクラス NSObject 準拠しているプロトコル NSCodingNSCopying Protocol ReferenceNSObject (NSObject) フレームワーク /System/Library/Frameworks/Foundation.framework 使用可能な環境 Mac OS X v10.0 以降 コンパニオンガイド Number and Value Programming Topics for Cocoa? 宣言ファイル NSGeometry.hNSRange.hNSValue.h サンプルコード LightTable?QTAudioContextInsert?QTAudioExtractionPanel?Quartz Composer WWDC 2005 TextEdit?Sketch+Accessibility? 概観(Overview) NSValueクラスのオブジェクトはCやObjective-Cの単独なデータの単純なコンテナです。このオブジェクトはint、float、charだけでなく、ポインタや構造体、オブジェクトのid型などのようなどんなスカラー型も持つことができます。このクラスはこのようなデータ型をNSArrayやNSSetのような要素がオブジェクトであることを要求するコレクションに入れられるようにする為に使います。NSValueオブジェクトは常に変更不能です。 採用しているプロトコル(Adopted Protocols) NSCoding - encodeWithCoder - initWithCoder NSCopying - copyWithZone このクラスでできること(Tasks) NSValueオブジェクトの作成(Creating an NSValue) – initWithBytes objCType + valueWithBytes objCType + value withObjCType + valueWithNonretainedObject + valueWithPointer + valueWithPoint + valueWithRange + valueWithRect + valueWithSize データへのアクセス(Accessing Data) – getValue – nonretainedObjectValue – objCType – pointValue – pointerValue – rangeValue – rectValue – sizeValue オブジェクトの比較(Comparing Objects) – isEqualToValue クラスメソッド value withObjCType valueWithBytes objCType valueWithNonretainedObject valueWithPoint valueWithPointer valueWithRange valueWithRect valueWithSize インスタンスメソッド getValue initWithBytes objCType isEqualToValue nonretainedObjectValue objCType pointValue pointerValue rangeValue rectValue sizeValue
https://w.atwiki.jp/fffifa08/pages/26.html
操作方法 CLASSIC ATTACKING SIMPLE A SHORT PASS/HEADER ショートパス、ヘディングパス X LOB PASS/CROSS/HEADER ロブパス、クロス、ヘディングパス Y THROUGH BALL スルーパス B SHOOT/VOLLEY/HEADER シュート、ボレー、ヘディング LB TRIGGER PLAYER RUN LB + B CHIP SHOT ループシュート RB + B FINESSE SHOT B THEN A + DIRECTION FAKE SHOT X THEN A + DIRECTION FAKE PASS LB + RB CANCEL キャンセル
https://w.atwiki.jp/saibakho/pages/88.html
Stored Maps MGMAPに限らず、さまざまなかたがたが、さまざまなプログラムでwgetを利用して、GoogleMapをダウンロードしたようで、 GoogleMapでwgetを使い無茶なダウンロードを試みるとアドウェア扱いにされてしまうらしい 1、アプリを携帯電話にインストール Map選択、OfflineとStored Mapsに設定 2、http //www.mapcacher.com/ Mapファイル作成 3、gMapMaker 保存フォルダ、Hash size(1) Tiles Per file(32) 、 Mapファイルを指定する http //www.mgmaps.com/cache/ Map Creation Tool MAP定義ファイルを作る際、複雑に範囲を指定するのが難しい このツールを使えば、GoogleMap上で範囲を指定してやるだけでいいので簡単にできる http //www.mgmaps.com/create/ http //forum.mgmaps.com/viewtopic.php?t=866 gMapMaker(20070912) GUI(グラフィカルユーザーインタフェース)があるMap Tile Downloader 座標データを手打ちすると一度に1つのズームレベルしかできないが、 MAP定義ファイルを使えるらしい http //www.mgmaps.com/gMapMaker-0.5.0.0.b1.exe http //debin.net/gMapMaker/dl/gMapMaker.zip フォーラム http //forum.mgmaps.com/viewtopic.php?t=1116 gMapMakerの説明(英語) http //debin.net/gMapMaker/ Mobile GMaps alpha V1.35 V1.35は保存した地図を表示できる「Stored Maps」の機能を追加されたバージョンのテスト版で別途リリースされ、 v1.36から「Stored Maps」の機能がメインと統合される。 また、GoogleMapがサポートされなくなるのも決まる。ただし、保存したStored Mapは使える。 v1.38.03にNOKIA端末のメモリ関係の修正があり、メモリの負担で落ちることが少なくなる。 v1.40.02 Development(MIDP2.0用)が出る。 v1.41.02からFavoritesにkmlの入出力が追加される signedとunsignedのJadファイルがあり、unsignedの場合は地図データを読み込むたびに確認画面が出る。 http //wap.mgmaps.com/alpha-signed.html http //wap.mgmaps.com/mgmaps-alpha-signed.jad http //wap.mgmaps.com/mgmaps-alpha-signed.jar MapTileCacher.perl v1.10で始まり v1.12で拡張子によるギャラリー表示対策(705nkでは表示されちゃう) v1.20でMAPファイルをまとめた形で保存 v1.21でまとめる量の選択がちょっと変わる v1.27までにHashが設けられ、v1.27辺りで落ち着く v1.28で地図追加(MicrosoftTer、MicrosoftBrMap、OSMARender) http //forum.mgmaps.com/download.php?id=34 Translations アプリのメニューを翻訳することも考えられてるらしい http //forum.mgmaps.com/viewtopic.php?t=528 KMLファイルからマップを収集 GPSのログとして移動の軌跡を記録したデータ(KMLファイル)を使い地図をダウンロード可能らしいです。 http //forum.mgmaps.com/viewtopic.php?t=721 上記フォーラムよりkml2map.zipをダウンロードし使用とのこと Stored Maps old(wgetを使用しての方法、2008年以前ぐらいかな) 1、アプリを携帯電話にインストール 2、パソコンで地図ダウンロード:ActivePerlとwgetとsslibsを入手。 ActivePerlをインストール、wget.exeをコマンドプロントで使える場所(環境変数のpathに登録、又は登録されているフォルダ、又はMapTileCahcer.perlと同じ場所)に置く、 sslibs.zipは解凍しlibeay32.dllとssleay32.dllをC ¥windows¥system32へ入れる。 MapTileCahcer.perlを起動、表示される文章にしたがって設定を打ち込む(大文字、小文字は別と認識される) 成功すればMGMapsCacheフォルダが作成されローカルマップが保存される。 3、メモリカードへコピー:MGMapsCacheフォルダをメモリカードへコピーし、MGMapsCacheフォルダ以下の全てのファイルを隠し属性にする 4、隠し属性にし忘れてギャラリー開いちゃったら: E /System/data/mg2/DB/Eフォルダを削除、及びローカルマップのフォルダ内に_PAlbTNフォルダがあるなら削除。 5、Mobile GMapsを起動、Settings→Map Browsing→Stored Mapsにチェック、設定を保存後、再スタート。 6、ダウンロードしたズームで見る。 フォーラム http //forum.mgmaps.com/viewtopic.php?t=670 MapTileFE.pl(マップ定義ファイルをMapTileFE.plを使ってwgetとMapTileCacher.perlで利用) 範囲やどの地図をダウンロードするかを書き込んだ.mapファイルを作成する事により 毎回、同じ情報を打ち込む手間を省くことが可能 また、地図追加する際、マップ定義ファイルを使えば、一度ダウンロードした地図を再度ダウンロードすることがない フォーラム http //forum.mgmaps.com/viewtopic.php?t=721 1、とりあえずMapTileCacher.perlを起動し、Map tiles per fileの値(地図ファイルをまとめる数)を決めて閉じ、MGMapsCacheフォルダにcache.confを作成させる 2、上記リンクのフォーラムよりMapTileFE.zipをダウンロード、MapTileCacher.perlと同じフォルダにて解凍 3、サンプルでTokyo.mapとHongKong.mapが入っているので、書き換えるなり参考にするなりして目的とする地図の範囲を入力する。 座標はGoogle mapの「このページのリンク」のURLやGoogle Earthを参考にすると直感的に数値を得る事が出来るかもしれません また、Map Creation Toolを使えば簡単に複雑な範囲を指定できるかもしれません 4、コマンドラインでperl MapTileFE.plと実行後、定義ファイルの一覧が表示された後に、定義ファイル名を入力。又は「perl MapTileFE.pl ファイル名」と実行 追記 どれくらい機能を使うことができるのか総合的な限界を考えると、 ズームは 大雑把な場所は00~14、細かく知りたい場所は15~17、もの凄く都会な場所は18~19、で便利に使えそう ムチャをして日本全国の地図をダウンロードした場合、 Map tiles per fileの値を【32】にした辺りでズームが00~15まではフォルダに入るらしい ファイル数が多すぎるとメモリーカードのフォルダに入らなくなることがあるらしい Map tiles per fileの値(地図ファイルをまとめる数)は、 多いほど地図を開くスピードが遅くなるが、小さい過ぎるとフォルダに入らない たぶん、705nk(Hack)やx02nkにおいて【32】辺りが妥当かもしれないらしい メモリーカードのフォーマットは FAT16は読み込みは速いが、ファイル数が多くなるにつれてFAT32よりも容量が多くなったりと色々制限ある。 FAT32は少し読み込みが遅いが、大量のファイルに都合がいい 日本地図ダウンロード時間は ズームが00~15でPCつけっぱなしで2~5週間かかるらしい メモリーカードのデータ容量は 範囲は日本、ズームが00~15、Map tiles per file【32】、FAT32で4GB超えるぐらいになるらしいので、 読込が速く、容量が大きいのがこのましい GoogleMapは forum情報によれば、あまりにもムチャしすぎるとアドウェアなど扱いされ、 地図にアクセスできなくなるらしい、少しでもダウンロードするとだいたい4GBぐらい見るとアクセス拒否されるかもしれない MapTileCacher.perlのv1.36には、GoogleSatをダウンロードする際、Proxyを使用するかどうかという設定があるらしい 使用するProxyや、URL、Proxy適用など、書き換えてみるのも面白いかもしれないが、そこまでしてGoogleMapにこだわる必要はないかもしれない 小ネタとして、 GoogleMapには 通常版と、圧縮して色が悪いがデータ量の少ない地図がある。 http //khm.google.com/maptilecompress/ こちらの方が持ち運びには適しているかもしれない また、日本のGoogleMap( hl=ja)からだと地名に読み仮名がないが、 日本のGoogleMap( hl=en)からだと地名にローマ字で読み仮名が付く 日本の地図は MSNか、GoogleMapの二つ ただし、GoogleMapはダウンロードをしようとするとアクセス拒否される #close
https://w.atwiki.jp/atwikimyj/pages/60.html
なぜかjsでy座標がうまくとれない。性格には場合によって取れない場合がある。 同じブラウザで違う挙動。EUCだとおかしい。 これも2週間くらい悩んだが、結局google scrollTop clientY バグ で検索して同じ悩みを持つ人を発見。 ie6の場合、挙動がおかしくなるみたいで特別にわけて処理を しなきゃいけないみたい(MSのドキュメントにあるんだろうな、、) ポインタの位置を取得するjsは以下のとおり。 http //www.qyen.org/archives/001201.html function getMouseY(e){ if(window.opera) //o6!) return e.clientY else if(document.all document.getElementById (document.compatMode== CSS1Compat )) // e6 return document.documentElement.scrollTop+event.clientY else if(document.all) //e4,e5,e6!) return document.body.scrollTop+event.clientY else if(document.layers||document.getElementById) return e.pageY //n4,n6,m1!) }
https://w.atwiki.jp/debian666/pages/2.html
メニュー トップページ プラグイン紹介 まとめサイト作成支援ツール メニュー メニュー2 リンク @wiki @wikiご利用ガイド 他のサービス 無料ホームページ作成 無料ブログ作成 2ch型掲示板レンタル 無料掲示板レンタル お絵かきレンタル 無料ソーシャルプロフ ここを編集
https://w.atwiki.jp/debian-linux/pages/9.html
動画(youtube) @wikiのwikiモードでは #video(動画のURL) と入力することで、動画を貼り付けることが出来ます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_209_ja.html また動画のURLはYoutubeのURLをご利用ください。 =>http //www.youtube.com/ たとえば、#video(http //youtube.com/watch?v=kTV1CcS53JQ)と入力すると以下のように表示されます。
https://w.atwiki.jp/prepress-tips/pages/155.html
構造を日本語プログラムで 処理を通常のプログラム言語で書いて 組合せる 方法を 実利用できるようにしました。 java と perl が使えます。 最終更新日時: 2009/03/29 javaで perlで ※ ここのtxtをソースに変換するプログラムは → codeLayouter ※ htmlとjavascriptでの利用を検討したものは → 構造と処理を別の言語で書いて組合せる 3 Edit javaで wgc_index.txt ‥ 処理の全体の構造wgc_java.txt ‥ javaによる処理の詳細my_java_lib.txt ‥ ライブラリから ソース言語に変換 perl codeLayouter.pl wgc_index.txt ( 出力ファイル名 wgc.java は wgc_java.txt 内の /name文で指定 ) wgc.java ‥ ソース言語に変換された結果 wgc_index.txt /name wgc問題 ? したいことは ‥ ? wgc問題を解く / タイトル を表示する / 初期状態 からgoal_seekerで解く / 解 を表示する ? 初期状態 / 状態 ( wgcf ) を戻す ? goalseekerを使うにあたって ‥ ? ゴールか / か ? 連れて行けるものは / fがある ならば どれか1つ を戻す / そうでなければ 反対側 のどれか1つ を戻す ? ( a )を連れて行くと / 新しい状態を用意する / fがある ならば fとaを除く / そうでなければ fとaを加える / 新しい状態 を戻す ? 制約を満たしているか / fがある ならば wgのどちらかがある かつ gcのどちらかがある を戻す / そうでなければ wgがともにない かつ gcがともにない を戻す ? ゴールですること / 解 に 状態の推移 を加える ? 新しい状態ですること / 状態 を 状態の推移 に加える ? 前の状態に戻すには / 状態の推移 から最後の状態を除く ? 状態を一意に表現するには / 状態の文字列を分解・ソートして並べ直す /use 処理の詳細 / wgc_java.txt /use ライブラリ / my_java_lib.txt my_java_lib.txt /? 構文 ** ( ?? )ならば( ?? ) / if( $1 ) { $2 } ** そうでなければ( ? ) / else { $1 } ** ( ? )を戻す / return $1 ; ** かつ / && /name my_java_lib import java.util.ArrayList; import java.util.Iterator; ? メッセージを表示する / class Msg ? ( m )を表示する / static void Msg.msg( String m ) System.out.println( m ); ? ( m )を表示する / static void Msg.msg( ArrayList m ) Iterator it = m.iterator(); while( it.hasNext() ) { System.out.println( it.next() ); } ? モデルの解を求める / class GoalSeeker ? / GoalSeeker ( State state, StateProcessor p ) processor = p; twice = new ArrayList(); goal_seeker ( state ); /+ / StateProcessor processor /+ / ArrayList twice ? / void goal_seeker ( State state ) if( state == null ) { return; } if( twice.contains( processor.unique( state ) ) ) { return; } if( ! processor.constraint( state ) ) { return; } if( processor.goal( state ) ) { processor.goal_lambda( state ); return; } processor.lambda( state ); twice.add( processor.unique( state ) ); String[] actions = processor.Actions( state ); for( int i = 0; i actions.length; i++ ) { String a = actions[ i ]; if( a.equals( ) ) { continue; } State new_state = processor.Delta( state, a ); goal_seeker( new_state ); } twice.remove( processor.unique( state ) ); processor.lambda_back( state ); ? / abstract class State String state; public String toString() { return state; } ? / abstract class StateProcessor abstract boolean goal( State state ); abstract void goal_lambda( State state ); abstract void lambda( State state ); abstract void lambda_back( State state ); abstract String[] Actions( State state ); abstract State Delta( State state, String action ); abstract boolean constraint( State state ); abstract String unique( State state ); wgc_java.txt /name my_java_lib / wgc.java /name wgc問題 / wgc.java package wgc; import java.util.Arrays; ? したいことは ‥ / class Wgc * wgc問題を解く / public static void main ( String[] args ) ? タイトル / static String title() return 狼・山羊・キャベツの川渡し問題 ; ? ( state )からgoal_seekerで解く / static void solve( State state ) answer_array = new ArrayList(); new GoalSeeker( state, new WgcProcessor( answer_array ) ); ? 解 / static ArrayList answer() / 解の配列 を戻す ? 解の配列 / static ArrayList answer_array * 初期状態 / static WgcState InitialState() ? 状態 / class WgcState extends State ? 状態 *[(]( s )[)] / new WgcState( String s ) super(); state = s; ? / public String toString() return state; ? goalseekerを使うにあたって ‥ / class WgcProcessor extends StateProcessor * ゴールか / boolean goal( State state ) * 連れて行けるものは / String[] Actions( State state ) * ( a )を連れて行くと / State Delta( State state, String a ) * 制約を満たしているか / boolean constraint( State state ) * ゴールですること /void goal_lambda( State state ) * 新しい状態ですること / void lambda( State state ) * 前の状態に戻すには / void lambda_back( State state ) * 状態を一意に表現するには / String unique( State state ) * _状態_ / state.state * か / / _状態_ .equals( ) を戻す ? fがある / boolean f_in( State state ) / _状態_ .matches( .*f.* ) を戻す * どれか1つ / / _状態_ のどれか1つ ? 反対側 / String opposite( State state ) / String b = _状態_ String a = wgcf ; if( b.length() == 0 ) { return a; } return a.replaceAll( [ + b + ] , ); ? ( s )のどれか1つ / String[] one_of( String s ) return s.split( ); * 新しい状態を用意する / state = new WgcState( state.state ); * fとaを除く / state.state = state.state.replaceAll( [f + a + ] , ); * fとaを加える / state.state += a.equals( f ) ? f f + a ; * 新しい状態 / state * wgのどちらかがある / state.state.matches( .*[wg].* ) * gcのどちらかがある / state.state.matches( .*[gc].* ) * wgがともにない / ! state.state.matches( .*(w.*g|g.*w).* ) * gcがともにない / ! state.state.matches( .*(g.*c|c.*g).* ) * 解 に 状態の推移 を加える / Iterator it = sequence.iterator(); String r = ; while( it.hasNext() ) { r += → + it.next(); } r += → + state.toString(); answer_array.add( r.replaceFirst( ( → )+ , ) ); ? 状態の推移/ ArrayList sequence ? / WgcProcessor( ArrayList answer ) super(); answer_array = answer; sequence = new ArrayList(); ? 渡された解の配列 / ArrayList answer_array * 状態 を 状態の推移 に加える / sequence.add( state.toString() ); * 状態の推移 から最後の状態を除く / sequence.remove( sequence.size() - 1 ); * 状態の文字列を分解・ソートして並べ直す / String[] s = state.state.split( ); Arrays.sort( s ); String r = ; for( int i = 0; i s.length; i++ ) { r += s[i]; } return r.replaceAll( f+ , f ); wgc.java package wgc; import java.util.Arrays; import java.util.ArrayList; import java.util.Iterator; class Wgc { // したいことは ‥ public static void main ( String[] args ) { // wgc問題を解く // タイトル を表示する Msg.msg( title() ); // 初期状態 からgoal_seekerで解く solve( InitialState() ); // 解 を表示する Msg.msg( answer() ); } static WgcState InitialState() { // 初期状態 // 状態 ( wgcf ) を戻す return new WgcState( wgcf ) ; } static String title() { // タイトル return 狼・山羊・キャベツの川渡し問題 ; } static void solve( State state ) { // ( state )からgoal_seekerで解く answer_array = new ArrayList(); new GoalSeeker( state, new WgcProcessor( answer_array ) ); } static ArrayList answer() { // 解 // 解の配列 を戻す return answer_array ; } static ArrayList answer_array; // 解の配列 } class WgcProcessor extends StateProcessor { // goalseekerを使うにあたって ‥ boolean goal( State state ) { // ゴールか // か // _状態_ .equals( ) を戻す return state.state .equals( ) ; } String[] Actions( State state ) { // 連れて行けるものは // fがある ならば どれか1つ を戻す if( f_in( state ) ) { return // _状態_ のどれか1つ one_of( state.state ) ; } // そうでなければ 反対側 のどれか1つ を戻す else { return one_of( opposite( state ) ) ; } } State Delta( State state, String a ) { // ( a )を連れて行くと // 新しい状態を用意する state = new WgcState( state.state ); // fがある ならば fとaを除く if( f_in( state ) ) { state.state = state.state.replaceAll( [f + a + ] , ); } // そうでなければ fとaを加える else { state.state += a.equals( f ) ? f f + a ; } // 新しい状態 を戻す return state ; } boolean constraint( State state ) { // 制約を満たしているか // fがある ならば wgのどちらかがある かつ gcのどちらかがある を戻す if( f_in( state ) ) { return state.state.matches( .*[wg].* ) && state.state.matches( .*[gc].* ) ; } // そうでなければ wgがともにない かつ gcがともにない を戻す else { return ! state.state.matches( .*(w.*g|g.*w).* ) && ! state.state.matches( .*(g.*c|c.*g).* ) ; } } void goal_lambda( State state ) { // ゴールですること // 解 に 状態の推移 を加える Iterator it = sequence.iterator(); String r = ; while( it.hasNext() ) { r += → + it.next(); } r += → + state.toString(); answer_array.add( r.replaceFirst( ( → )+ , ) ); } void lambda( State state ) { // 新しい状態ですること // 状態 を 状態の推移 に加える sequence.add( state.toString() ); } void lambda_back( State state ) { // 前の状態に戻すには // 状態の推移 から最後の状態を除く sequence.remove( sequence.size() - 1 ); } String unique( State state ) { // 状態を一意に表現するには // 状態の文字列を分解・ソートして並べ直す String[] s = state.state.split( ); Arrays.sort( s ); String r = ; for( int i = 0; i s.length; i++ ) { r += s[i]; } return r.replaceAll( f+ , f ); } boolean f_in( State state ) { // fがある // _状態_ .matches( .*f.* ) を戻す return state.state .matches( .*f.* ) ; } String opposite( State state ) { // 反対側 // String b = _状態_ String b = state.state; String a = wgcf ; if( b.length() == 0 ) { return a; } return a.replaceAll( [ + b + ] , ); } String[] one_of( String s ) { // ( s )のどれか1つ return s.split( ); } ArrayList sequence; // 状態の推移 WgcProcessor( ArrayList answer ) { // super(); answer_array = answer; sequence = new ArrayList(); } ArrayList answer_array; // 渡された解の配列 } class WgcState extends State { // 状態 WgcState( String s ) { // 状態 *[(]( s )[)] super(); state = s; } public String toString() { // return state; } } // 構文 class Msg { // メッセージを表示する static void msg( String m ) { // ( m )を表示する System.out.println( m ); } static void msg( ArrayList m ) { // ( m )を表示する Iterator it = m.iterator(); while( it.hasNext() ) { System.out.println( it.next() ); } } } class GoalSeeker { // モデルの解を求める GoalSeeker ( State state, StateProcessor p ) { // processor = p; twice = new ArrayList(); goal_seeker ( state ); } StateProcessor processor; // ArrayList twice; // void goal_seeker ( State state ) { // if( state == null ) { return; } if( twice.contains( processor.unique( state ) ) ) { return; } if( ! processor.constraint( state ) ) { return; } if( processor.goal( state ) ) { processor.goal_lambda( state ); return; } processor.lambda( state ); twice.add( processor.unique( state ) ); String[] actions = processor.Actions( state ); for( int i = 0; i actions.length; i++ ) { String a = actions[ i ]; if( a.equals( ) ) { continue; } State new_state = processor.Delta( state, a ); goal_seeker( new_state ); } twice.remove( processor.unique( state ) ); processor.lambda_back( state ); } } abstract class State { // String state; public String toString() { return state; } } abstract class StateProcessor { // abstract boolean goal( State state ); abstract void goal_lambda( State state ); abstract void lambda( State state ); abstract void lambda_back( State state ); abstract String[] Actions( State state ); abstract State Delta( State state, String action ); abstract boolean constraint( State state ); abstract String unique( State state ); } perlで wgc_index.txt 内の /use文を取り替える。( java と書いてあるところを perl に変える ) /use 処理の詳細 / wgc_perl.txt /use ライブラリ / my_perl_lib.txt wgc_perl.txt ‥ perlによる処理の詳細my_perl_lib.txt ‥ ライブラリから ソース言語に変換 perl codeLayouter.pl wgc_index.txt ( 出力ファイル名 wgc.pl は wgc_perl.txt 内の /name文で指定 ) wgc.pl ‥ ソース言語に変換された結果 もっと簡単に記述することもできますが、サンプルの意味を兼ねて javaと同じ構造で作ってみました。 wgc_index.txt /name wgc問題 ? したいことは ‥ ? wgc問題を解く / タイトル を表示する / 初期状態 からgoal_seekerで解く / 解 を表示する ? 初期状態 / 状態 ( wgcf ) を戻す ? goalseekerを使うにあたって ‥ ? ゴールか / か ? 連れて行けるものは / fがある ならば どれか1つ を戻す / そうでなければ 反対側 のどれか1つ を戻す ? ( a )を連れて行くと / 新しい状態を用意する / fがある ならば fとaを除く / そうでなければ fとaを加える / 新しい状態 を戻す ? 制約を満たしているか / fがある ならば wgのどちらかがある かつ gcのどちらかがある を戻す / そうでなければ wgがともにない かつ gcがともにない を戻す ? ゴールですること / 解 に 状態の推移 を加える ? 新しい状態ですること / 状態 を 状態の推移 に加える ? 前の状態に戻すには / 状態の推移 から最後の状態を除く ? 状態を一意に表現するには / 状態の文字列を分解・ソートして並べ直す /use 処理の詳細 / wgc_perl.txt /use ライブラリ / my_perl_lib.txt my_perl_lib.txt /? 構文 ** ( ?? )ならば( ?? ) / if( $1 ) { $2 } ** そうでなければ( ? ) / else { $1 } ** ( ? )を戻す / return $1 ; ** かつ / && /name my_perl_lib ? メッセージを表示する / package msg ? ( m )を表示する / msg msg( m ) print $_[0]. \x0a ; ? モデルの解を求める / package goal_seeker ? / goal_seeker() my ( $state, $ready, ) = @_; $state || return; $ready || ( $twice = {} ); ! $twice- { $state- unique } && $state- constraint || return; $state- goal && ( $state- goal_lambda, return ); $state- lambda; $twice- { $state- unique } = 1; map do { goal_seeker( $_, 1 ); }, map do { $state- Delta( $_ ); }, $state- Actions; $twice- { $state- unique } = undef; $state- lambda_back; wgc_perl.txt /name my_perl_lib / wgc.pl /name wgc問題 / wgc.pl main(); * したいことは ‥ / package main * goalseekerを使うにあたって ‥ / package goal_seeker ? / package main * wgc問題を解く / main() ? タイトル / title() wgc問題を解く ; ? ( s )からgoal_seekerで解く / solve( s ) $answer = ; $goal_seeker debug = 1; $goal_seeker sequence = ; goal_seeker goal_seeker( InitialState() ); ? 解 / answer() / 解の文字列 を戻す ? 解の文字列 / $answer * 初期状態 / InitialState() ? / package goal_seeker ? 状態 *[(]( s )[)] / goal_seeker State( s ) bless { state = $_[0] }; * ゴールか / goal() * 連れて行けるものは / Actions() * ( a )を連れて行くと / Delta( a ) * 制約を満たしているか / constraint() * ゴールですること /goal_lambda() * 新しい状態ですること / lambda() * 前の状態に戻すには / lambda_back() * 状態を一意に表現するには / unique() * か / $_[0]- {state} eq ; ? fがある / f_in( @_ ) $_[0]- {state} =~ /f/; * どれか1つ / split , $_[0]- {state}; ? 反対側 / opposite( @_ ) my $all = wgcf ; $_[0]- {state} eq || ( $all =~ s/[$_[0]- {state}]//g ); $all; ? ( s )のどれか1つ / one_of( s ) split , $_[0]; * 新しい状態を用意する / $_[2] || ( return State( $_[0]- {state} )- Delta( $_[1], 1 ) ); $debug && print -$_[1]\x0a ; * fとaを除く / $_[0]- {state} =~ s/[f$_[1]]//g; $_[0]; * fとaを加える / $_[0]- {state} .= $_[1] eq f ? f f .$_[1]; $_[0]; * 新しい状態 / $_[0] * wgのどちらかがある / contain( @_, wg ) * gcのどちらかがある / contain( @_, gc ) ? / contain() $_[0]- {state} =~ /[$_[1]]/; * wgがともにない / not_contain( @_, wg ) * gcがともにない / not_contain( @_, gc ) ? / not_contain() my @a = ( $_[0]- {state} =~ /[$_[1]]/g ); return @a != 2; * 解 に 状態の推移 を加える / $main answer .= $sequence. → . \x0a ; $debug && print $_[0]- {state}\x0a ; ? 状態の推移 / $sequence * 状態 を 状態の推移 に加える / $sequence .= ( $sequence ? → ).$_[0]- {state}; $debug && print $_[0]- {state}\x0a ; * 状態の推移 から最後の状態を除く / $sequence =~ s/ → \w+$//; * 状態の文字列を分解・ソートして並べ直す / join , sort split , $_[0]- {state}; wgc.pl main(); { package main; # したいことは ‥ sub main { # wgc問題を解く # タイトル を表示する msg msg( title() ); # 初期状態 からgoal_seekerで解く solve( InitialState() ); # 解 を表示する msg msg( answer() ); } sub InitialState { # 初期状態 # 状態 ( wgcf ) を戻す return goal_seeker State( wgcf ) ; } } { package goal_seeker; # goalseekerを使うにあたって ‥ sub goal { # ゴールか # か $_[0]- {state} eq ; } sub Actions { # 連れて行けるものは # fがある ならば どれか1つ を戻す if( f_in( @_ ) ) { return split , $_[0]- {state}; ; } # そうでなければ 反対側 のどれか1つ を戻す else { return one_of( opposite( @_ ) ) ; } } sub Delta { # ( a )を連れて行くと # 新しい状態を用意する $_[2] || ( return State( $_[0]- {state} )- Delta( $_[1], 1 ) ); $debug && print -$_[1]\x0a ; # fがある ならば fとaを除く if( f_in( @_ ) ) { $_[0]- {state} =~ s/[f$_[1]]//g; $_[0]; } # そうでなければ fとaを加える else { $_[0]- {state} .= $_[1] eq f ? f f .$_[1]; $_[0]; } # 新しい状態 を戻す return $_[0] ; } sub constraint { # 制約を満たしているか # fがある ならば wgのどちらかがある かつ gcのどちらかがある を戻す if( f_in( @_ ) ) { return contain( @_, wg ) && contain( @_, gc ) ; } # そうでなければ wgがともにない かつ gcがともにない を戻す else { return not_contain( @_, wg ) && not_contain( @_, gc ) ; } } sub goal_lambda { # ゴールですること # 解 に 状態の推移 を加える $main answer .= $sequence. → . \x0a ; $debug && print $_[0]- {state}\x0a ; } sub lambda { # 新しい状態ですること # 状態 を 状態の推移 に加える $sequence .= ( $sequence ? → ).$_[0]- {state}; $debug && print $_[0]- {state}\x0a ; } sub lambda_back { # 前の状態に戻すには # 状態の推移 から最後の状態を除く $sequence =~ s/ → \w+$//; } sub unique { # 状態を一意に表現するには # 状態の文字列を分解・ソートして並べ直す join , sort split , $_[0]- {state}; } } { package main; # sub title { # タイトル wgc問題を解く ; } sub solve { # ( s )からgoal_seekerで解く $answer = ; $goal_seeker debug = 1; $goal_seeker sequence = ; goal_seeker goal_seeker( InitialState() ); } sub answer { # 解 # 解の文字列 を戻す return $answer ; } $answer; # 解の文字列 } { package goal_seeker; # sub goal_seeker State { # 状態 *[(]( s )[)] bless { state = $_[0] }; } sub f_in { # fがある $_[0]- {state} =~ /f/; } sub opposite { # 反対側 my $all = wgcf ; $_[0]- {state} eq || ( $all =~ s/[$_[0]- {state}]//g ); $all; } sub one_of { # ( s )のどれか1つ split , $_[0]; } sub contain { # $_[0]- {state} =~ /[$_[1]]/; } sub not_contain { # my @a = ( $_[0]- {state} =~ /[$_[1]]/g ); return @a != 2; } $sequence; # 状態の推移 } # 構文 { package msg; # メッセージを表示する sub msg msg { # ( m )を表示する print $_[0]. \x0a ; } } { package goal_seeker; # モデルの解を求める sub goal_seeker { # my ( $state, $ready, ) = @_; $state || return; $ready || ( $twice = {} ); ! $twice- { $state- unique } && $state- constraint || return; $state- goal && ( $state- goal_lambda, return ); $state- lambda; $twice- { $state- unique } = 1; map do { goal_seeker( $_, 1 ); }, map do { $state- Delta( $_ ); }, $state- Actions; $twice- { $state- unique } = undef; $state- lambda_back; } } Edit
https://w.atwiki.jp/linuxjapanwiki/pages/298.html
コメントログ作成 - 名無しさん (2020-09-05 20 11 24)
https://w.atwiki.jp/sampleisbest/pages/120.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 空の CLR プロジェクト プロジェクト名 clrclass clrclass.cpp /* #pragmaは以下のプロジェクトプロパティと同等 構成プロパティ→リンカー →システム→サブシステム:Windows (/SUBSYSTEM WINDOWS) →詳細設定→エントリ ポイント:Hello main */ #pragma comment(linker, "/subsystem windows") #pragma comment(linker, "/entry Hello main") #using System.Windows.Forms.dll using namespace System Windows Forms; public ref class Hello { private void Message() { MessageBox Show("hello, world"); } public static int main() { Hello^ hello = gcnew Hello(); hello- Message(); return 0; } };
https://w.atwiki.jp/debian666/pages/9.html
@wikiにはいくつかの便利なプラグインがあります。 アーカイブ コメント ニュース 動画(Youtube) 編集履歴 関連ブログ これ以外のプラグインについては@wikiガイドをご覧ください = http //atwiki.jp/guide/